package org.example.seata.common.core.util;

import java.util.Optional;

/**
 * BusinessOperations 业务操作
 *
 * @author hzq
 * @date 2021/11/17 17:52
 */
public class BusOp {

    /**
     * 必须为true
     */
    public static void mustSucceed(boolean flag) {
        mustSucceed(flag, "操作失败");
    }

    /**
     * 必须为true
     */
    public static void mustSucceed(boolean flag, String message) {
        if (!flag) {
            throw new BaseException(message);
        }
    }

    /**
     * 必须不为空
     */
    public static void mustNotNull(Object object) {
        mustNotNull(object, "操作失败");
    }

    /**
     * 必须不为空
     */
    public static void mustNotNull(Object object, String message) {
        if (null == object) {
            throw new BaseException(message);
        }
    }

    /**
     * 原始值为空则设置默认值
     *
     * @param value        原始值
     * @param defaultValue 默认值
     * @param <T>          类型
     * @return 值
     */
    public static <T> T defaultValue(T value, T defaultValue) {
        return Optional.ofNullable(value).orElse(defaultValue);
    }
}
